package com.comment.pojo.domain.logic.core;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.io.Serializable;
import java.util.Map;

/**
 * (CoreTaskConfig)表实体类
 *
 * @author cxy
 * @since 2024-08-09 14:20:04
 */
@ApiModel("$tableInfo.comment")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = true)
@TableName(autoResultMap = true)
public class    CoreTaskConfig extends Model<CoreTaskConfig> {// swagger2,mybatis-plus
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 生成实体字段
    @TableId(type = IdType.AUTO)
    @ApiModelProperty("$column.comment")
    private Long id;

    @ApiModelProperty("任务名")
    private String configName;

    @ApiModelProperty("任务类型 0.不刷新 1日刷新 2周刷新 3月刷新" )
    private Integer taskType;

    // id	名称	描述
    // 1	击败玩家  击败玩家的最后一个城池
    // 2	击杀敌军	击杀敌方的兵力数量
    // 3	攻占城池	占领的城池数
    // 4	完成统一	统一
    // 5	完成对局	完成对局
    @TableField(typeHandler = Fastjson2TypeHandler.class)
    @ApiModelProperty("任务目标")
    private Map<Integer,Long> targetValue;

    @TableField(typeHandler = Fastjson2TypeHandler.class)
    @ApiModelProperty("物品奖励")
    private Map<Long,Long> rewardProp;

    @ApiModelProperty("分组  1.日常 2.战令 3.成就")
    @TableField(value = "grouping")
    private Integer grouping;

    @ApiModelProperty("前置任务id")
    private Long pid;

    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 序列化版本号
    @TableField(exist = false)
    private static final long serialVersionUID = 838776498433965517L;

    /////////////////////////////////////////////////////////////////////////////////////////////////////////// 获取主键值
    @Override
    public Serializable pkVal() {
        return this.id;
    }

    public CoreTaskConfig init() {
        return this;
    }
}

